#ifndef FILTER_H
#define FILTER_H

#include <QImage>

class QProgressDialog;

class Filter
{
public:
    Filter();
    Filter(int size);
    Filter(int size, QProgressDialog *pd);
    virtual ~Filter() { }

    void setSize(int size);
    void setProgressDialog(QProgressDialog *progressDialog);
    virtual QImage filter(const QImage &image) = 0;

protected:
    virtual void doSetSize(int size) { };
    bool progress(int pixel);

    int m;
    QProgressDialog *progressDialog;
};

#endif
